package com.herench.bunch.clinic.convert;

import ca.uhn.hl7v2.HL7Exception;
import ca.uhn.hl7v2.model.v24.group.ORU_R01_OBSERVATION;
import ca.uhn.hl7v2.model.v24.group.ORU_R01_ORDER_OBSERVATION;
import ca.uhn.hl7v2.model.v24.group.ORU_R01_PATIENT;
import ca.uhn.hl7v2.model.v24.group.ORU_R01_PATIENT_RESULT;
import ca.uhn.hl7v2.model.v24.message.ORU_R01;
import ca.uhn.hl7v2.model.v24.segment.*;
import com.herench.bunch.commons.utils.IdGenerator;
import org.junit.Test;

import java.io.IOException;
import java.util.Date;

public class TEST {

    @Test
    public void test() throws IOException, HL7Exception {

//患者检验申请单信息
//        ORU_R01 message = new ORU_R01();
//        message.initQuickstart("ORU_R01", "ORU_R01", "R");
//        MSH msh = message.getMSH();
//        msh.getMsh11_ProcessingID().getPt1_ProcessingID().setValue("900010");
//        msh.getMsh11_ProcessingID().getPt2_ProcessingMode().setValue(IdGenerator.getUUID());
//        msh.getMsh3_SendingApplication().getHd1_NamespaceID().setValue("LIS");
//        msh.getMsh7_DateTimeOfMessage().getTs1_TimeOfAnEvent().setValue(new Date());
//        msh.getMsh10_MessageControlID().setValue(IdGenerator.getUUID());
//
//
//
//        ORU_R01_PATIENT_RESULT patient_result = message.insertPATIENT_RESULT(0);
//
//        ORU_R01_PATIENT oru_r01_patient=patient_result.getPATIENT();
//        ORU_R01_ORDER_OBSERVATION op =  patient_result.insertORDER_OBSERVATION(0);
//
//        PID pid = oru_r01_patient.getPID();
//        pid.getPid3_PatientIdentifierList(0).getCx1_ID().setValue("patientId");
//        pid.getPid5_PatientName(0).getXpn1_FamilyName().getOwnSurname().setValue("name");
//        pid.getPid5_PatientName(0).getXpn2_GivenName();
//        pid.getPid5_PatientName(0).getXpn3_SecondAndFurtherGivenNamesOrInitialsThereof();
//        pid.getPid5_PatientName(0).getXpn7_NameTypeCode().setValue("babyNo");
//        pid.getPid6_MotherSMaidenName(0).getXpn1_FamilyName().getFn1_Surname().setValue("age");
//        pid.getPid7_DateTimeOfBirth().getTs1_TimeOfAnEvent().setValue("dateOfBirth");
//        pid.getPid8_AdministrativeSex().setValue("sex");
//        pid.getPid11_PatientAddress(0).getXad1_StreetAddress().getSad1_StreetOrMailingAddress().setValue("mailingAddress");
//        pid.getPid11_PatientAddress(0).getXad3_City().setValue("bedLabel");
//
//        pid.getPid11_PatientAddress(0).getXad5_ZipOrPostalCode().setValue("visitId");
//
//
//
//
//
//        OBR obr = op.getOBR();
//        obr.getObr1_SetIDOBR().setValue("testNo");
//        obr.getObr2_PlacerOrderNumber().getEi1_EntityIdentifier().setValue("orderingDept");
//        obr.getObr2_PlacerOrderNumber().getEi2_NamespaceID();
//        obr.getObr3_FillerOrderNumber().getEi1_EntityIdentifier().setValue("orderingProvider");
//        obr.getObr3_FillerOrderNumber().getEi2_NamespaceID();
//        obr.getObr4_UniversalServiceIdentifier().getCe1_Identifier();
//        obr.getObr4_UniversalServiceIdentifier().getCe2_Text();
//        obr.getObr7_ObservationDateTime().getTs1_TimeOfAnEvent().setValue("requestedDateTime");
//        obr.getObr7_ObservationDateTime().getTs2_DegreeOfPrecision().setValue("spcmSampleDateTime");
//        obr.getObr16_OrderingProvider(0).getXcn1_IDNumber();
//        obr.getObr16_OrderingProvider(0).getXcn2_FamilyName().getFn2_OwnSurnamePrefix().setValue("specimen");
//        obr.getObr16_OrderingProvider(0).getXcn3_GivenName().setValue("bottleColor");
//        obr.getObr16_OrderingProvider(0).getXcn7_DegreeEgMD().setValue("notesForSpcm");
//        obr.getObr25_ResultStatus();
//        obr.getObr31_ReasonForStudy(0).getCe1_Identifier().setValue("performedBy");
//        obr.getObr31_ReasonForStudy(0).getCe2_Text().setValue("relevantClinicDiag");
//        obr.getObr31_ReasonForStudy(0).getCe3_NameOfCodingSystem();
//
//
//
//        ORU_R01_OBSERVATION oru_r01_observation = op.getOBSERVATION();
//        OBX obx = oru_r01_observation.getOBX();
//        obx.getObx1_SetIDOBX().setValue("itemNo");
//        obx.getObx2_ValueType().setValue("chargeType");
//        obx.getObx3_ObservationIdentifier().getCe1_Identifier().setValue("sheetId");
//        obx.getObx3_ObservationIdentifier().getCe2_Text();
//        obx.getObx3_ObservationIdentifier().getCe3_NameOfCodingSystem().setValue("sheetTitle");
//        obx.getObx4_ObservationSubId().setValue("itemName");
//        obx.getObx6_Units().getCe1_Identifier().setValue("itemCode");
//        obx.getObx7_ReferencesRange().setValue("costs");
//        obx.getObx8_AbnormalFlags().setValue("billingIndicator");
//
//
//        obx.getObx9_Probability(0).setValue("charges");
//        obx.getObx11_ObservationResultStatus().setValue("resultStatus");
//
//        obx.getObx16_ResponsibleObserver().getXcn15_NameRepresentationCode().setValue("priorityIndicator");
//
//
//
//        System.out.println(message);




        //检验计费















    }
}
